git使用记录

您所在的位置:网站首页 git checkout 还原 git使用记录

git使用记录

2023-07-04 14:10| 来源: 网络整理| 查看: 265

 介绍

Git 是一个分布式版本控制系统,普遍用于多人协作开发软件项目、数据备份管理等场景。

Git 的主要优势在于它支持分支管理,可以同时进行多个版本开发或合并不同的分支,并且还能够记录文件修改历史,从而更方便地追踪代码更改。此外, Git 还具有强大的协作功能,允许多名开发者在同一 Git 仓库中共同工作,并且还具有快速复制和恢复代码的能力。

在使用 Git 进行版本控制时,通常的工作流程如下:

创建仓库:通过 Git init 命令创建一个新的本地仓库,然后使用 add 命令将需要进行版本控制的文件添加到仓库中。

提交变更:Git commit 命令会将暂存区中的文件提交到本地仓库中,并且附加一条提交消息,描述这次提交的目的和内容。

查看状态:使用 Git status 命令查看当前的代码状态,可以了解当前有哪些修改已经被添加到暂存区或者没有被跟踪。

分支管理:使用 Git branch 和 Git checkout 命令创建分支并切换到不同的分支上,以便进行不同的代码开发或者合并操作。

合并分支:使用 Git merge 命令将一个分支与当前分支进行合并,这个过程可以让多人协作开发相互独立,并最终整合到同一个版本中。

远程推送和拉取:将本地仓库的变更推送至远程仓库,使用 Git push 命令实现;从远程仓库拉取最新内容到本地仓库,使用 Git pull 命令实现。

除此之外,Git 还具有丰富的工具集和插件,如图形化界面、GiHub、GitLab 等等,并且在大型软件项目中也广泛应用,被称为是“分布式版本控制系统中的黄金标准”,在软件行业及其他领域发挥着重要的作用。

仓库操作

以下是 Git 操作仓库的常用的一部分指令,包括指令内容和作用:

git clone :从远程仓库克隆代码到本地,并自动创建一个与远程仓库同名的目录。例如,git clone https://github.com/user/repo.git 会将 repo.git 仓库克隆到当前目录下并重命名为 repo。git init:在当前目录下初始化一个新的 Git 仓库,或将已有的项目转换成 Git 仓库。执行该命令后,Git 将在当前目录下创建一个 .git 目录来存储版本控制所必需的文件。git add :将指定文件或目录添加到暂存区,准备提交到本地仓库。git commit -m "":将之前添加到暂存区的变更提交到本地仓库。-m 参数可以指定本次提交的说明信息。git status:查看当前工作区和暂存区的状态。该命令将列出已修改、已暂存和未跟踪的文件。git diff:显示当前工作目录与上次提交之间的差异。使用 -cached 参数可以查看暂存区和最后一次提交之间的差异。git log:查看提交历史记录。该命令将列出所有提交的信息,包括提交作者、提交时间和提交说明等。git pull:从远程仓库拉取最新代码并合并到本地分支。如果您在进行提交前需要将本地代码更新到最新版本,可以使用该命令。git push:将本地的代码推送到远程仓库,以同步代码变更。必须先进行 commit 操作后,在使用 push 命令将本地已提交的修改推送到远端仓库中。git branch:列出本地仓库中的所有分支。使用 -a 参数可以显示所有分支,包括远程仓库的分支。git checkout :切换到指定的分支并更新工作区中的文件。例如,git checkout main 会将当前分支切换到名为 main 的分支。git merge :将指定分支上的变更合并到当前分支。例如,git merge feature-branch 会将名为 feature-branch 的分支合并到当前所在的分支上。git remote add origin :将本地仓库关联到一个远程仓库。例如,git remote add origin https://github.com/user/repo.git 将本地代码库与 GitHub 上名为 user/repo 的仓库关联起来,并将此远程仓库注册为名称为 origin 的别名。git tag :将当前代码库标记为一个具有指定名称的标签。这通常用于标识重要的版本或里程碑。git stash:将未完成的工作暂存,以便在后续操作中再次使用。执行该命令后,Git 将保存未提交的更改并清空工作区和暂存区,方便您在切换分支或其他操作时使用。 安装后的配置

设置git的用户名、邮件地址、文本编辑器,自动存储git的用户名和密码。

# 设置用户名 git config --global user.name "Your Name" # 设置电子邮件地址 git config --global user.email "[email protected]" # 设置默认文本编辑器 git config --global core.editor vim #将Git仓库的凭据(访问仓库所需的用户名和密码)存储在本地的磁盘上,避免每次都需要手动输入凭据信息。 git config --global credential.helper stroe # 查看 Git 的完整配置列表 git config --list 配置重置 # 取消全局设置的凭证 helper。 git config --global --unset credential.helper # 用于删除已存储在 ~/.git-credentials 文件中的凭证。 git credential-store --erase:

git强制解决冲突 git checkout --ours /path/to/file git checkout --theirs /path/to/file

git checkout --ours /path/to/file 命令的作用是使用当前分支(即合并目标分支)指定文件 /path/to/file 的版本来进行合并冲突解决。

在 Git 进行合并操作时,如果一个文件存在冲突,该文件将被标记为 “Both Modified” 或者 “Both added” 状态。你可以使用 git status 命令查看当前工作区状态以找到这些文件。

对于标记为冲突的文件,有两种解决方法:

使用编辑器手动解决冲突,然后使用 git add 命令将更改添加到暂存区,并使用 git commit 提交;使用 git checkout 命令将文件恢复为一个版本,并将其添加到暂存区以完成冲突解决。

以上命令中,--ours 标志表示应该使用当前分支中的版本来解决冲突,而不是使用其他分支或合并版本。执行此命令将覆盖本地版本库中的文件版本,还需要使用 git add 和 git commit 将更改提交到本地版本库以完成解决。

举个例子:

# 在进行合并操作时,如果遇到冲突,先运行 git status 命令查看冲突文件的状态 $ git status On branch mybranch You have unmerged paths. (fix conflicts and run "git commit") Unmerged paths: (use "git restore --staged ..." to unstage) both modified: file.txt # 使用 git checkout --ours 命令标记文件为解决方案(该命令只更新索引,不改变工作目录中的文件) $ git checkout --ours file.txt # 运行 git add 命令将解决后的文件添加到暂存区 $ git add file.txt # 继续完成合并操作,提交解决后的文件 $ git commit -m "Resolve conflict by choosing our version of file.txt" git恢复指定文件 git checkout HEAD filename1 filename2

git checkout HEAD filename1 filename2 命令的作用是将指定的文件 filename1 和 filename2 恢复到 HEAD 版本(最新提交版本)的状态。

执行此命令后,Git 会将这两个文件恢复为最新的提交版本,且所有未存储的更改都会被覆盖。而如果你没有指定文件,则为恢复整个工作区至最新版本的状态。

需要注意的是,使用该命令应当谨慎,确保你已经保存了任何修改,并且准备好丢弃这些修改。如果你执行该命令后再次修改了文件,那么 Git 就无法再把它们还原成之前的样子。

为此,推荐在执行前先进行 git status 查看工作区是否有未存储的更改,同时在执行时显式地指定要恢复的文件列表。

git打标签

git tag 命令用于在 Git 代码仓库中打标签,以便在后续需要的时候更方便地找到和使用这个标签。具体来说,它的作用如下:

标记特定版本:为某个特定的提交设置一个易于识别的名称,方便后续查找和管理。例如,在发布软件时,可以使用标签来标志某个版本号。

定位特定版本:可以使用标签快速定位某个特定版本的代码,并且避免与其他版本产生混淆。这对团队合作、代码审查、问题追踪等方面都非常有用。

分支操作辅助:有时还可以使用标签辅助分支操作,例如基于某个标签创建新的预发布分支或者补丁分支等等。

需要注意的是,标签并非像分支一样是动态变化的,而是针对某个提交创建的不可改变的“快照”(或者说“静态”的版本)。因此,不能直接通过标签来进行版本控制等各种修改操作,必须要新建一个分支来进行相关操作。

总之,使用 git tag 命令可以帮助我们更好地管理和使用代码库中的不同版本,提高代码开发和维护的效率。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3